//
// Created by sjjmw on 3/24/2022.
//
#include "iostream"
#include "vector"
#include "list"
#include "algorithm"
#include "string"


void handle(int64_t a,int64_t b
            ){
    std::vector<int> zs(a);
    std::vector<int> cs(199999);
    std::vector<int> step(a);
    for(int i=0;i<a;i++){
        std::cin>>zs[i];
    }
    cs[0]=1;
    for(int i=1;i<=b;i++){
        int min=INT_MAX;
        //丑数
        for(int j=0;j<a;j++){
            //质数
            while(zs[j]*cs[step[j]]<=cs[i-1]){
                step[j]++;
            }
            min= std::min(min,zs[j]*cs[step[j]]);
        }
        cs[i]=min;
    }
    printf("%d\n",cs[b]);
}

int main(){
    int a,b,c;
//    std::string str1,str2;
    while(
            std::cin>>a>>b
//            std::getline(std::cin,str1)
    ){
//        std::getline(std::cin,str2);
        handle(a,b);
    }
    return 0;
}